home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 March / EnigmA AMIGA RUN 05 (1996)(G.R. Edizioni)(IT)[!][issue 1996-03][Skylink CD IV].iso / earcd / program / mui32dev.lha / MUI / Developer / Modula / txt / MuiMacros.mod < prev    next >
Text File  |  1996-01-23  |  44KB  |  1,368 lines

  1. IMPLEMENTATION MODULE MuiMacros;
  2.  
  3. (*$ NilChk      := FALSE EntryClear  := FALSE LargeVars   := FALSE StackParms  := FALSE *)
  4. (*$ DEFINE Locale := TRUE *)
  5. (*$ DEFINE MUIOBSOLETE := FALSE *)
  6. (*$ DEFINE MUI3   := TRUE  *)
  7.  
  8. (****************************************************************************
  9. **
  10. ** $VER: MuiMacros.mod 3.2 (23.1.96)
  11. **
  12. ** The following updates have been done by
  13. **
  14. **   Olaf "Olf" Peters <olf@informatik.uni-bremen.de>
  15. **
  16. ** $HISTORY:
  17. **
  18. **  23.1.96  3.2   : updated for MUI 3.2 release
  19. ** 18.11.95  3.1   : updated for MUI v3.1 release
  20. **  17.9.95  2.3   : updated to MUI v2.3
  21. **
  22. ****************************************************************************)
  23.  
  24. (****************************************************************************
  25. **
  26. **      MUI Macros 2.0
  27. **
  28. **      Converted to Modula by Christian "Kochtopf" Scholz
  29. **
  30. **      $Id: MuiMacros.mod 1.5 1995/12/15 16:37:53 olf Exp olf $
  31. **
  32. **/// "$Log: MuiMacros.mod $
  33.  * Revision 1.5  1995/12/15  16:37:53  olf
  34.  * - applied changes from Stefan Schulz
  35.  * - cleanup of IMPORT section
  36.  *"
  37. # Revision 1.4  1995/12/04  17:30:31  olf
  38. # MUI-Interfaces 3.1.1
  39. #
  40. # Revision 1.3  1995/11/18  16:46:18  olf
  41. # MUI Release 3.1
  42. #
  43. # Revision 1.2  1995/10/23  17:06:34  olf
  44. # *** empty log message ***
  45. #
  46. # Revision 1.1  1995/09/25  15:32:52  olf
  47. # Initial revision
  48. #
  49. # Revision 1.8  1994/08/18  18:59:25  Kochtopf
  50. # changed img-argument in PopButton from ARRAY to APTR.
  51. # changed implementation of SimpleButton for -MUIOBSOLETE
  52. #
  53. # Revision 1.7  1994/08/11  16:59:45  Kochtopf
  54. # *** empty log message ***
  55. #
  56. # Revision 1.6  1994/06/27  22:06:41  Kochtopf
  57. # put some Macros in MUIOBSOLETE-Parenthesis, because one should
  58. # now use mMakeObj.
  59. #
  60. # Revision 1.5  1994/02/15  21:14:05  Kochtopf
  61. # neue Macros fuer Pop* und Register definiert,
  62. # HCenter und VCenter neu
  63. # PopUp entfernt und durch PopButton ersetzt.
  64. # neue Label-Macros LLabel eingefuehrt (aus mui.h)
  65. #
  66. # Revision 1.4  1994/02/09  14:50:03  Kochtopf
  67. # Versionsnummer in 2.0 geaendert.
  68. #
  69. **\\\
  70. ****************************************************************************)
  71.  
  72. FROM SYSTEM     IMPORT ADDRESS, ADR, TAG, CAST, SETREG, REG;
  73. FROM MuiD       IMPORT APTR, StrPtr ;
  74. FROM MuiSupport IMPORT DoMethod;
  75. FROM Storage    IMPORT ALLOCATE;
  76.  
  77. IMPORT
  78.   id : IntuitionD,
  79.   il : IntuitionL,
  80.   m  : MuiD,
  81.   ml : MuiL,
  82.   R,
  83.   ud : UtilityD ;
  84.  
  85.  
  86. VAR buffer  : ARRAY [0..8] OF LONGINT;      (* for the tags *)
  87.  
  88. (*///  "MUI-Object-Generation" *)
  89. (*
  90. **
  91. **  MUI - Object Generation
  92. **
  93. *)
  94.  
  95. PROCEDURE WindowObject(tags : ud.TagItemPtr) : APTR;
  96.     BEGIN
  97.         RETURN ml.mNewObject(ADR(m.mcWindow), tags);
  98.     END WindowObject;
  99.  
  100. PROCEDURE ImageObject(tags : ud.TagItemPtr) : APTR;
  101.     BEGIN
  102.         RETURN ml.mNewObject(ADR(m.mcImage), tags);
  103.     END ImageObject;
  104.  
  105. PROCEDURE ApplicationObject(tags : ud.TagItemPtr) : APTR;
  106.     BEGIN
  107.         RETURN ml.mNewObject(ADR(m.mcApplication), tags);
  108.     END ApplicationObject;
  109.  
  110. PROCEDURE NotifyObject(tags : ud.TagItemPtr) : APTR;
  111.     BEGIN
  112.         RETURN ml.mNewObject(ADR(m.mcNotify), tags);
  113.     END NotifyObject;
  114.  
  115. PROCEDURE TextObject(tags : ud.TagItemPtr) : APTR;
  116.     BEGIN
  117.         RETURN ml.mNewObject(ADR(m.mcText), tags);
  118.     END TextObject;
  119.  
  120. PROCEDURE RectangleObject(tags : ud.TagItemPtr) : APTR;
  121.     BEGIN
  122.         RETURN ml.mNewObject(ADR(m.mcRectangle), tags);
  123.     END RectangleObject;
  124.  
  125. PROCEDURE ListObject(tags : ud.TagItemPtr) : APTR;
  126.     BEGIN
  127.         RETURN ml.mNewObject(ADR(m.mcList), tags);
  128.     END ListObject;
  129.  
  130. PROCEDURE PropObject(tags : ud.TagItemPtr) : APTR;
  131.     BEGIN
  132.         RETURN ml.mNewObject(ADR(m.mcProp), tags);
  133.     END PropObject;
  134.  
  135. PROCEDURE StringObject(tags : ud.TagItemPtr) : APTR;
  136.     BEGIN
  137.         RETURN ml.mNewObject(ADR(m.mcString), tags);
  138.     END StringObject;
  139.  
  140. PROCEDURE ScrollbarObject(tags : ud.TagItemPtr) : APTR;
  141.     BEGIN
  142.         RETURN ml.mNewObject(ADR(m.mcScrollbar), tags);
  143.     END ScrollbarObject;
  144.  
  145. PROCEDURE ListviewObject(tags : ud.TagItemPtr) : APTR;
  146.     BEGIN
  147.         RETURN ml.mNewObject(ADR(m.mcListview), tags);
  148.     END ListviewObject;
  149.  
  150. PROCEDURE RadioObject(tags : ud.TagItemPtr) : APTR;
  151.     BEGIN
  152.         RETURN ml.mNewObject(ADR(m.mcRadio), tags);
  153.     END RadioObject;
  154.  
  155. PROCEDURE VolumelistObject(tags : ud.TagItemPtr) : APTR;
  156.     BEGIN
  157.         RETURN ml.mNewObject(ADR(m.mcVolumelist), tags);
  158.     END VolumelistObject;
  159.  
  160. PROCEDURE FloattextObject(tags : ud.TagItemPtr) : APTR;
  161.     BEGIN
  162.         RETURN ml.mNewObject(ADR(m.mcFloattext), tags);
  163.     END FloattextObject;
  164.  
  165. PROCEDURE DirlistObject(tags : ud.TagItemPtr) : APTR;
  166.     BEGIN
  167.         RETURN ml.mNewObject(ADR(m.mcDirlist), tags);
  168.     END DirlistObject;
  169.  
  170. PROCEDURE ScrmodelistObject(tags : ud.TagItemPtr) : APTR;
  171.     BEGIN
  172.         RETURN ml.mNewObject(ADR(m.mcScrmodelist), tags);
  173.     END ScrmodelistObject;
  174.  
  175. PROCEDURE SliderObject(tags : ud.TagItemPtr) : APTR;
  176.     BEGIN
  177.         RETURN ml.mNewObject(ADR(m.mcSlider), tags);
  178.     END SliderObject;
  179.  
  180. PROCEDURE CycleObject(tags : ud.TagItemPtr) : APTR;
  181.     BEGIN
  182.         RETURN ml.mNewObject(ADR(m.mcCycle), tags);
  183.     END CycleObject;
  184.  
  185. PROCEDURE GaugeObject(tags : ud.TagItemPtr) : APTR;
  186.     BEGIN
  187.         RETURN ml.mNewObject(ADR(m.mcGauge), tags);
  188.     END GaugeObject;
  189.  
  190. PROCEDURE BoopsiObject(tags : ud.TagItemPtr) : APTR;
  191.     BEGIN
  192.         RETURN ml.mNewObject(ADR(m.mcBoopsi), tags);
  193.     END BoopsiObject;
  194.  
  195. PROCEDURE ScaleObject(tags : ud.TagItemPtr) : APTR;
  196.     BEGIN
  197.         RETURN ml.mNewObject(ADR(m.mcScale), tags);
  198.     END ScaleObject;
  199.  
  200. PROCEDURE GroupObject(tags : ud.TagItemPtr) : APTR;
  201.     BEGIN
  202.         RETURN ml.mNewObject(ADR(m.mcGroup), tags);
  203.     END GroupObject;
  204.  
  205. PROCEDURE VGroup(tags : ud.TagItemPtr) : APTR;
  206.     BEGIN
  207.         RETURN ml.mNewObject(ADR(m.mcGroup), tags);
  208.     END VGroup;
  209.  
  210. PROCEDURE HGroup(tags : ud.TagItemPtr) : APTR;
  211.     BEGIN
  212.         RETURN ml.mNewObject(ADR(m.mcGroup), TAG(buffer, m.maGroupHoriz, TRUE, ud.tagMore, tags, ud.tagEnd));
  213.     END HGroup;
  214.  
  215. PROCEDURE ColGroup(cols : LONGCARD; tags : ud.TagItemPtr) : APTR;
  216.     BEGIN
  217.         RETURN ml.mNewObject(ADR(m.mcGroup), TAG(buffer, m.maGroupColumns, cols, ud.tagMore, tags, ud.tagEnd));
  218.     END ColGroup;
  219.  
  220. PROCEDURE RowGroup(rows : LONGCARD; tags : ud.TagItemPtr) : APTR;
  221.     BEGIN
  222.         RETURN ml.mNewObject(ADR(m.mcGroup), TAG(buffer, m.maGroupRows, rows, ud.tagMore, tags, ud.tagEnd));
  223.     END RowGroup;
  224.  
  225. PROCEDURE PageGroup(tags : ud.TagItemPtr) : APTR;
  226.     BEGIN
  227.          RETURN ml.mNewObject(ADR(m.mcGroup),TAG(buffer, m.maGroupPageMode, TRUE, ud.tagMore, tags, ud.tagEnd));
  228.     END PageGroup;
  229.  
  230. PROCEDURE ColorfieldObject(tags : ud.TagItemPtr) : APTR;
  231.     BEGIN
  232.          RETURN ml.mNewObject(ADR(m.mcColorfield), tags);
  233.     END ColorfieldObject;
  234.  
  235. PROCEDURE ColoradjustObject(tags : ud.TagItemPtr) : APTR;
  236.     BEGIN
  237.          RETURN ml.mNewObject(ADR(m.mcColoradjust), tags);
  238.     END ColoradjustObject;
  239.  
  240. PROCEDURE PaletteObject(tags : ud.TagItemPtr) : APTR;
  241.     BEGIN
  242.          RETURN ml.mNewObject(ADR(m.mcPalette), tags);
  243.     END PaletteObject;
  244.  
  245. PROCEDURE VirtgroupObject(tags : ud.TagItemPtr) : APTR;
  246.     BEGIN
  247.          RETURN ml.mNewObject(ADR(m.mcVirtgroup), tags);
  248.     END VirtgroupObject;
  249.  
  250. PROCEDURE ScrollgroupObject(tags : ud.TagItemPtr) : APTR;
  251.     BEGIN
  252.          RETURN ml.mNewObject(ADR(m.mcScrollgroup), tags);
  253.     END ScrollgroupObject;
  254.  
  255. PROCEDURE VGroupV(tags : ud.TagItemPtr) : APTR;
  256.     BEGIN
  257.          RETURN ml.mNewObject(ADR(m.mcVirtgroup), tags);
  258.     END VGroupV;
  259.  
  260. PROCEDURE HGroupV(tags : ud.TagItemPtr) : APTR;
  261.     BEGIN
  262.         RETURN ml.mNewObject(ADR(m.mcVirtgroup), TAG(buffer, m.maGroupHoriz, TRUE, ud.tagMore, tags, ud.tagEnd));
  263.     END HGroupV;
  264.  
  265. PROCEDURE ColGroupV(cols : LONGCARD; tags : ud.TagItemPtr) : APTR;
  266.     BEGIN
  267.         RETURN ml.mNewObject(ADR(m.mcVirtgroup), TAG(buffer, m.maGroupColumns, cols, ud.tagMore, tags, ud.tagEnd));
  268.     END ColGroupV;
  269.  
  270. PROCEDURE RowGroupV(rows : LONGCARD; tags : ud.TagItemPtr) : APTR;
  271.     BEGIN
  272.         RETURN ml.mNewObject(ADR(m.mcVirtgroup), TAG(buffer, m.maGroupRows, rows, ud.tagMore, tags, ud.tagEnd));
  273.     END RowGroupV;
  274.  
  275. PROCEDURE PageGroupV(tags : ud.TagItemPtr) : APTR;
  276.     BEGIN
  277.          RETURN ml.mNewObject(ADR(m.mcVirtgroup),TAG(buffer, m.maGroupPageMode, TRUE, ud.tagMore, tags, ud.tagEnd));
  278.     END PageGroupV;
  279.  
  280. PROCEDURE PopString(tags : ud.TagItemPtr) : APTR;
  281.     BEGIN
  282.          RETURN ml.mNewObject(ADR(m.mcPopstring), tags);
  283.     END PopString;
  284.  
  285. PROCEDURE PopObject(tags : ud.TagItemPtr) : APTR;
  286.     BEGIN
  287.          RETURN ml.mNewObject(ADR(m.mcPopobject), tags);
  288.     END PopObject;
  289.  
  290. PROCEDURE PopAsl(tags : ud.TagItemPtr) : APTR;
  291.     BEGIN
  292.          RETURN ml.mNewObject(ADR(m.mcPopasl), tags);
  293.     END PopAsl;
  294.  
  295. (*$ IF MUI3 *)
  296.  
  297. PROCEDURE PendisplayObject(tags : ud.TagItemPtr) : APTR ;
  298.     BEGIN
  299.          RETURN ml.mNewObject(ADR(m.mcPendisplay), tags) ;
  300.     END PendisplayObject ;
  301.  
  302. PROCEDURE PoppenObject(tags : ud.TagItemPtr) : APTR ;
  303.     BEGIN
  304.          RETURN ml.mNewObject(ADR(m.mcPoppen), tags);
  305.     END PoppenObject ;
  306.  
  307. (*$ ENDIF *)
  308.  
  309. PROCEDURE Register(tags : ud.TagItemPtr) : APTR;
  310.     BEGIN
  311.          RETURN ml.mNewObject(ADR(m.mcRegister), tags);
  312.     END Register;
  313.  
  314. PROCEDURE MenuStripObject(tags : ud.TagItemPtr) : APTR;
  315.     BEGIN
  316.          RETURN ml.mNewObject(ADR(m.mcMenustrip), tags);
  317.     END MenuStripObject;
  318.  
  319. PROCEDURE MenuObject(tags : ud.TagItemPtr) : APTR;
  320.     BEGIN
  321.          RETURN ml.mNewObject(ADR(m.mcMenu), tags);
  322.     END MenuObject;
  323.  
  324. (*$ IF Locale *)
  325. PROCEDURE MenuObjectT(name : StrPtr; tags : ud.TagItemPtr) : APTR;
  326. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  327. PROCEDURE MenuObjectT(name : ARRAY OF CHAR; tags : ud.TagItemPtr) : APTR;
  328. (*$ ENDIF *)
  329.     BEGIN
  330.          (*$ IF Locale *)
  331.          RETURN ml.mNewObject(ADR(m.mcMenu), TAG(buffer, m.maMenuTitle, name, ud.tagMore, tags, ud.tagEnd));
  332.          (*$ ELSE *)
  333.          RETURN ml.mNewObject(ADR(m.mcMenu), TAG(buffer, m.maMenuTitle, ADR(name), ud.tagMore, tags, ud.tagEnd));
  334.          (*$ ENDIF *)
  335.     END MenuObjectT;
  336.  
  337. PROCEDURE MenuItemObject(tags : ud.TagItemPtr) : APTR;
  338.     BEGIN
  339.          RETURN ml.mNewObject(ADR(m.mcMenuitem), tags);
  340.     END MenuItemObject;
  341.  
  342.  
  343. (*$ IF MUI3 *)
  344.  
  345. PROCEDURE AboutmuiObject(tags : ud.TagItemPtr) : APTR;
  346.     BEGIN
  347.          RETURN ml.mNewObject(ADR(m.mcAboutmui), tags);
  348.     END AboutmuiObject;
  349.  
  350. PROCEDURE BalanceObject(tags : ud.TagItemPtr) : APTR ;
  351.     BEGIN
  352.          RETURN ml.mNewObject(ADR(m.mcBalance), tags);
  353.     END BalanceObject;
  354.  
  355. PROCEDURE KnobObject(tags : ud.TagItemPtr) : APTR ;
  356.     BEGIN
  357.          RETURN ml.mNewObject(ADR(m.mcKnob), tags);
  358.     END KnobObject;
  359.  
  360. PROCEDURE LevelmeterObject(tags : ud.TagItemPtr) : APTR ;
  361.     BEGIN
  362.          RETURN ml.mNewObject(ADR(m.mcLevelmeter), tags);
  363.     END LevelmeterObject;
  364.  
  365. PROCEDURE NumericbuttonObject(tags : ud.TagItemPtr) : APTR ;
  366.     BEGIN
  367.          RETURN ml.mNewObject(ADR(m.mcNumericbutton), tags);
  368.     END NumericbuttonObject;
  369.  
  370. PROCEDURE NumericObject(tags : ud.TagItemPtr) : APTR ;
  371.     BEGIN
  372.          RETURN ml.mNewObject(ADR(m.mcNumeric), tags);
  373.     END NumericObject;
  374.  
  375. PROCEDURE PenadjustObject(tags : ud.TagItemPtr) : APTR ;
  376.     BEGIN
  377.          RETURN ml.mNewObject(ADR(m.mcPenadjust), tags);
  378.     END PenadjustObject;
  379.  
  380. (*$ ENDIF *)
  381.  
  382.  
  383. (*\\\*)
  384. (*///  "MakeID" *)
  385. (*
  386. **  MakeID
  387. **  Generate an ID out of a 4-char-string.
  388. **  Use it the as WindowID ! (look in MuiTest for an example!)
  389. *)
  390.  
  391. PROCEDURE MakeID (name : ShortString): LONGINT;
  392.  
  393.     BEGIN
  394.         RETURN ORD(name[0])+
  395.                ORD(name[1])*256+
  396.                ORD(name[2])*65536+
  397.                ORD(name[3])*16777216;
  398.     END MakeID;
  399. (*\\\*)
  400. (*///  "Hook-Support" *)
  401. (*
  402. **  Hook-Support functions
  403. **  1. the dispatcher
  404. **  2. the MakeHook-Function
  405. **
  406. *)
  407.  
  408. PROCEDURE HookEntry(hook{R.A0}  : ud.HookPtr;
  409.                     object{R.A2}: ADDRESS;
  410.                     args{R.A1}  : ADDRESS)     : ADDRESS;
  411.     (*$SaveA4:=TRUE*)
  412.     BEGIN
  413.         SETREG (R.A4, hook^.data);
  414.         RETURN CAST(HookDef,hook^.subEntry)(hook, object, args);
  415.     END HookEntry;
  416.  
  417. PROCEDURE MakeHook(entry:HookDef; VAR hook : ud.HookPtr);
  418.  
  419.     BEGIN
  420.             ALLOCATE(hook,SIZE(ud.Hook));
  421.             hook^.node.succ  := NIL;
  422.             hook^.node.pred  := NIL;
  423.             hook^.entry      := HookEntry;
  424.             hook^.subEntry   := CAST(ADDRESS,entry);
  425.             hook^.data       := REG(R.A4);
  426.     END MakeHook;
  427. (*\\\*)
  428. (*///  "Spacing-Macros" *)
  429. (*
  430. **
  431. **  Spacing Macros
  432. **
  433. *)
  434. (*///  "HV-Space" *)
  435. PROCEDURE HVSpace() : APTR;
  436.     BEGIN
  437.         RETURN ml.mNewObject(ADR(m.mcRectangle), NIL);
  438.     END HVSpace;
  439. (*\\\*)
  440. (*///  "Hspace" *)
  441. PROCEDURE HSpace(x : LONGCARD) : APTR;
  442.     BEGIN
  443.         IF x#0 THEN
  444.                 RETURN ml.mNewObject(ADR(m.mcRectangle),
  445.                                      TAG(buffer,
  446.                                         m.maFixWidth,     x,
  447.                                         m.maVertWeight,   0,
  448.                                         ud.tagEnd));
  449.                 ELSE
  450.                 RETURN ml.mNewObject(ADR(m.mcRectangle),
  451.                                      TAG(buffer,
  452.                                         m.maVertWeight,   0,
  453.                                         ud.tagEnd));
  454.                 END;
  455.     END HSpace;
  456. (*\\\*)
  457. (*///  "VSpace" *)
  458. PROCEDURE VSpace(x : LONGCARD) : APTR;
  459.     BEGIN
  460.         IF x#0 THEN
  461.                 RETURN ml.mNewObject(ADR(m.mcRectangle),
  462.                                      TAG(buffer,
  463.                                         m.maFixHeight,     x,
  464.                                         m.maHorizWeight,   0,
  465.                                         ud.tagEnd));
  466.                 ELSE
  467.                 RETURN ml.mNewObject(ADR(m.mcRectangle),
  468.                                      TAG(buffer,
  469.                                         m.maHorizWeight,   0,
  470.                                         ud.tagEnd));
  471.                 END;
  472.     END VSpace;
  473. (*\\\*)
  474. (*///  "HCenter" *)
  475. PROCEDURE HCenter(obj : APTR) : APTR;
  476.     BEGIN
  477.         RETURN HGroup(TAG(buffer,
  478.                     m.maGroupSpacing,      0,
  479.                     Child,                  HSpace(0),
  480.                     Child,                  obj,
  481.                     Child,                  HSpace(0),
  482.                     ud.tagEnd));
  483.     END HCenter;
  484. (*\\\*)
  485. (*///  "VCenter" *)
  486. PROCEDURE VCenter(obj : APTR) : APTR;
  487.     BEGIN
  488.         RETURN VGroup(TAG(buffer,
  489.                     m.maGroupSpacing,      0,
  490.                     Child,                  VSpace(0),
  491.                     Child,                  obj,
  492.                     Child,                  VSpace(0),
  493.                     ud.tagEnd));
  494.     END VCenter;
  495. (*\\\*)
  496. (*\\\*)
  497. (*///  "PopButton" *)
  498. (*
  499. **
  500. **  PopUp-Button
  501. **
  502. **  to be used for Popup-Objects
  503. **
  504. *)
  505.  
  506. PROCEDURE PopButton(img : APTR) : APTR;
  507.     BEGIN
  508.         RETURN ml.MakeObject(m.moPopButton, TAG(buffer, img));
  509.     END PopButton;
  510. (*\\\*)
  511.  
  512. (*$ IF MUIOBSOLETE *)
  513.  
  514. (*
  515. **
  516. ** String-Object
  517. **
  518. ** Makes a simple String-Gadget
  519. **
  520. *)
  521.  
  522. (*///  "StringObjects" *)
  523. (*$ IF Locale *)
  524. PROCEDURE String(contents : StrPtr; maxlen : LONGINT) : APTR;
  525. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  526. PROCEDURE String(contents : ARRAY OF CHAR; maxlen : LONGINT) : APTR;
  527. (*$ ENDIF *)
  528.     BEGIN
  529.         RETURN StringObject(TAG(buffer,
  530.                             m.maFrame,            m.mvFrameString,
  531.                             m.maStringMaxLen,     maxlen,
  532.                             (*$ IF Locale *)
  533.                                 m.maStringContents,   contents,
  534.                             (*$ ELSE *)
  535.                                 m.maStringContents,   ADR(contents),
  536.                             (*$ ENDIF *)
  537.                             ud.tagEnd));
  538.     END String;
  539. (*$ IF Locale *)
  540. PROCEDURE KeyString(contents : StrPtr; maxlen : LONGINT; key : CHAR) : APTR;
  541. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  542. PROCEDURE KeyString(contents : ARRAY OF CHAR; maxlen : LONGINT; key : CHAR) : APTR;
  543. (*$ ENDIF *)
  544.     BEGIN
  545.         RETURN StringObject(TAG(buffer,
  546.                             m.maFrame,             m.mvFrameString,
  547.                             m.maStringMaxLen,      maxlen,
  548.                             (*$ IF Locale *)
  549.                                 m.maStringContents,    contents,
  550.                             (*$ ELSE *)
  551.                                 m.maStringContents,    ADR(contents),
  552.                             (*$ ENDIF *)
  553.                             m.maControlChar,       key,
  554.                             ud.tagEnd));
  555.     END KeyString;
  556. (*\\\*)
  557.  
  558. (*
  559. **
  560. ** Checkmark
  561. **
  562. *)
  563.  
  564. (*///  "Checkmarks" *)
  565. PROCEDURE Checkmark(selected : BOOLEAN) : APTR;
  566.     BEGIN
  567.         RETURN ImageObject( TAG(buffer,
  568.                             m.maFrame,            m.mvFrameImageButton,
  569.                             m.maInputMode,        m.mvInputModeToggle,
  570.                             m.maImageSpec,        m.miCheckMark,
  571.                             m.maImageFreeVert,    TRUE,
  572.                             m.maSelected,         selected,
  573.                             m.maBackground,       m.miButtonBack,
  574.                             m.maShowSelState,     FALSE,
  575.                             ud.tagEnd));
  576.     END Checkmark;
  577.  
  578. PROCEDURE KeyCheckmark(selected : BOOLEAN; key : CHAR) : APTR;
  579.     BEGIN
  580.         RETURN ImageObject( TAG(buffer,
  581.                             m.maFrame,            m.mvFrameImageButton,
  582.                             m.maInputMode,        m.mvInputModeToggle,
  583.                             m.maImageSpec,        m.miCheckMark,
  584.                             m.maImageFreeVert,    TRUE,
  585.                             m.maSelected,         selected,
  586.                             m.maBackground,       m.miButtonBack,
  587.                             m.maShowSelState,     FALSE,
  588.                             m.maControlChar,      key,
  589.                             ud.tagEnd));
  590.     END KeyCheckmark;
  591.  
  592. (*\\\*)
  593.  
  594. (*
  595. **
  596. ** Buttons
  597. **
  598. *)
  599.  
  600. (*///  "Buttons" *)
  601.  
  602. (*$ IF Locale *)
  603. PROCEDURE Keybutton(name : StrPtr; key : CHAR) : APTR;
  604. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  605. PROCEDURE Keybutton(name : ARRAY OF CHAR; key : CHAR) : APTR;
  606. (*$ ENDIF *)
  607.     BEGIN
  608.         RETURN TextObject(  TAG(buffer,
  609.                             m.maFrame,            m.mvFrameButton,
  610.                             (*$ IF Locale *)
  611.                                 m.maTextContents,     name,
  612.                             (*$ ELSE *)
  613.                                 m.maTextContents,     ADR(name),
  614.                             (*$ ENDIF *)
  615.                             m.maTextPreParse,     ADR("\033c"),
  616.                             m.maTextSetMax,       FALSE,
  617.                             m.maTextHiChar,       key,
  618.                             m.maControlChar,      key,
  619.                             m.maInputMode,        m.mvInputModeRelVerify,
  620.                             m.maBackground,       m.miButtonBack,
  621.                             ud.tagEnd));
  622.  
  623.     END Keybutton;
  624.  
  625. (*\\\*)
  626.  
  627. (*
  628. **
  629. **  Radio Object
  630. **
  631. *)
  632.  
  633. (*///  "RadioObjects" *)
  634. (*$ IF Locale *)
  635. PROCEDURE Radio(name : StrPtr; array : APTR) : APTR;
  636. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  637. PROCEDURE Radio(name : ARRAY OF CHAR; array : APTR) : APTR;
  638. (*$ ENDIF *)
  639.     BEGIN
  640.         RETURN RadioObject( TAG(buffer,
  641.                             m.maFrame,             m.mvFrameGroup,
  642.                             (*$ IF Locale *)
  643.                                 m.maFrameTitle,        name,
  644.                             (*$ ELSE *)
  645.                                 m.maFrameTitle,        ADR(name),
  646.                             (*$ ENDIF *)
  647.                             m.maRadioEntries,      array,
  648.                             ud.tagEnd));
  649.     END Radio;
  650.  
  651. (*$ IF Locale *)
  652. PROCEDURE KeyRadio(name : StrPtr; array : APTR; key : CHAR) : APTR;
  653. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  654. PROCEDURE KeyRadio(name : ARRAY OF CHAR; array : APTR; key : CHAR) : APTR;
  655. (*$ ENDIF *)
  656.     BEGIN
  657.         RETURN RadioObject( TAG(buffer,
  658.                             m.maFrame,             m.mvFrameGroup,
  659.                             (*$ IF Locale *)
  660.                                 m.maFrameTitle,        name,
  661.                             (*$ ELSE *)
  662.                                 m.maFrameTitle,        ADR(name),
  663.                             (*$ ENDIF *)
  664.                             m.maTextHiChar,        key,
  665.                             m.maControlChar,       key,
  666.                             m.maRadioEntries,      array,
  667.                             ud.tagEnd));
  668.     END KeyRadio;
  669.  
  670. (*\\\*)
  671.  
  672. (*
  673. **
  674. **  Cycle-Objects
  675. **
  676. *)
  677.  
  678. (*///  "Cycle" *)
  679. PROCEDURE Cycle(array : APTR) : APTR;
  680.     BEGIN
  681.         RETURN CycleObject(TAG(buffer,
  682.                             m.maCycleEntries,      array,
  683.                             ud.tagEnd));
  684.     END Cycle;
  685.  
  686.  
  687. PROCEDURE KeyCycle(array : APTR; key : CHAR) : APTR;
  688.     BEGIN
  689.         RETURN CycleObject(TAG(buffer,
  690.                             m.maCycleEntries,      array,
  691.                             m.maControlChar,       key,
  692.                             ud.tagEnd));
  693.     END KeyCycle;
  694. (*\\\*)
  695.  
  696. (*
  697. **
  698. **  Slider-Objects
  699. **
  700. *)
  701.  
  702. (*///  "Slider" *)
  703. PROCEDURE Slider(min,max,level : LONGINT; horiz : BOOLEAN) : APTR;
  704.     BEGIN
  705.         RETURN SliderObject(TAG(buffer,
  706.                             m.maGroupHoriz,        horiz,
  707. (*$ IF MUI3 *)
  708.                             m.maNumericValue,      level,
  709.                             m.maNumericMax,        max,
  710.                             m.maNumericMin,        min,
  711. (*$ ELSE *)
  712.                             m.maSliderLevel,       level,
  713.                             m.maSliderMax,         max,
  714.                             m.maSliderMin,         min,
  715. (*$ ENDIF *)
  716.                             ud.tagEnd));
  717.     END Slider;
  718.  
  719. PROCEDURE KeySlider(min,max,level : LONGINT; horiz : BOOLEAN;
  720.                         key : CHAR) : APTR;
  721.     BEGIN
  722.         RETURN SliderObject(TAG(buffer,
  723.                             m.maGroupHoriz,        horiz,
  724. (*$ IF MUI3 *)
  725.                             m.maNumericValue,      level,
  726.                             m.maNumericMax,        max,
  727.                             m.maNumericMin,        min,
  728. (*$ ELSE *)
  729.                             m.maSliderLevel,       level,
  730.                             m.maSliderMax,         max,
  731.                             m.maSliderMin,         min,
  732. (*$ ENDIF *)
  733.                             m.maControlChar,       key,
  734.                             ud.tagEnd));
  735.     END KeySlider;
  736. (*\\\*)
  737.  
  738. (*$ ENDIF *) (* MUIOBSOLETE *)
  739.  
  740. (*/// "Simplebutton" *)
  741.  
  742. (*$ IF Locale *)
  743. PROCEDURE Simplebutton(name : StrPtr) : APTR;
  744.     BEGIN
  745.         RETURN ml.MakeObject(m.moButton, TAG(buffer, name));
  746.     END Simplebutton;
  747. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  748. PROCEDURE Simplebutton(name : ARRAY OF CHAR) : APTR;
  749.     BEGIN
  750.         RETURN ml.MakeObject(m.moButton, TAG(buffer, ADR(name)));
  751.     END Simplebutton;
  752. (*$ ENDIF *) (* Locale *)
  753. (*\\\*)
  754.  
  755. (*
  756. **
  757. ** Label Objects
  758. **
  759. *)
  760.  
  761. (*///  "LabelX" *)
  762. (*$ IF Locale *)
  763. PROCEDURE Label(label : StrPtr) : APTR;
  764. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  765. PROCEDURE Label(label : ARRAY OF CHAR) : APTR;
  766. (*$ ENDIF *)
  767.     BEGIN
  768. (*$ IF Locale *)
  769.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  0, ud.tagEnd)) ;
  770. (*$ ELSE *)
  771.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), 0, ud.tagEnd)) ;
  772. (*$ ENDIF *)
  773.     END Label;
  774.  
  775. (*$ IF Locale *)
  776. PROCEDURE Label1(label : StrPtr) : APTR;
  777. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  778. PROCEDURE Label1(label : ARRAY OF CHAR) : APTR;
  779. (*$ ENDIF *)
  780.     BEGIN
  781. (*$ IF Locale *)
  782.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  m.MOLabelFlagSet{m.singleFrame}, ud.tagEnd)) ;
  783. (*$ ELSE *)
  784.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), m.MOLabelFlagSet{m.singleFrame}, ud.tagEnd)) ;
  785. (*$ ENDIF *)
  786.     END Label1;
  787.  
  788. (*$ IF Locale *)
  789. PROCEDURE Label2(label : StrPtr) : APTR;
  790. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  791. PROCEDURE Label2(label : ARRAY OF CHAR) : APTR;
  792. (*$ ENDIF *)
  793.     BEGIN
  794. (*$ IF Locale *)
  795.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  m.MOLabelFlagSet{m.doubleFrame}, ud.tagEnd)) ;
  796. (*$ ELSE *)
  797.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), m.MOLabelFlagSet{m.doubleFrame}, ud.tagEnd)) ;
  798. (*$ ENDIF *)
  799.     END Label2;
  800. (*\\\*)
  801. (*///  "LLabelX" *)
  802. (*$ IF Locale *)
  803. PROCEDURE LLabel(label : StrPtr) : APTR;
  804. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  805. PROCEDURE LLabel(label : ARRAY OF CHAR) : APTR;
  806. (*$ ENDIF *)
  807.     BEGIN
  808. (*$ IF Locale *)
  809.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  m.MOLabelFlagSet{m.leftAligned}, ud.tagEnd)) ;
  810. (*$ ELSE *)
  811.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), m.MOLabelFlagSet{m.leftAligned}, ud.tagEnd)) ;
  812. (*$ ENDIF *)
  813.     END LLabel;
  814.  
  815.  
  816. (*$ IF Locale *)
  817. PROCEDURE LLabel1(label : StrPtr) : APTR;
  818. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  819. PROCEDURE LLabel1(label : ARRAY OF CHAR) : APTR;
  820. (*$ ENDIF *)
  821.     BEGIN
  822. (*$ IF Locale *)
  823.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  m.MOLabelFlagSet{m.leftAligned, m.singleFrame}, ud.tagEnd)) ;
  824. (*$ ELSE *)
  825.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), m.MOLabelFlagSet{m.leftAligned, m.singleFrame}, ud.tagEnd)) ;
  826. (*$ ENDIF *)
  827.     END LLabel1;
  828.  
  829.  
  830. (*$ IF Locale *)
  831. PROCEDURE LLabel2(label : StrPtr) : APTR;
  832. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  833. PROCEDURE LLabel2(label : ARRAY OF CHAR) : APTR;
  834. (*$ ENDIF *)
  835.     BEGIN
  836. (*$ IF Locale *)
  837.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  m.MOLabelFlagSet{m.leftAligned, m.doubleFrame}, ud.tagEnd)) ;
  838. (*$ ELSE *)
  839.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), m.MOLabelFlagSet{m.leftAligned, m.doubleFrame}, ud.tagEnd)) ;
  840. (*$ ENDIF *)
  841.     END LLabel2;
  842. (*\\\*)
  843. (*///  "CLabelX" *)
  844. (*$ IF Locale *)
  845. PROCEDURE CLabel(label : StrPtr) : APTR;
  846. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  847. PROCEDURE CLabel(label : ARRAY OF CHAR) : APTR;
  848. (*$ ENDIF *)
  849.     BEGIN
  850. (*$ IF Locale *)
  851.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  m.MOLabelFlagSet{m.centered}, ud.tagEnd)) ;
  852. (*$ ELSE *)
  853.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), m.MOLabelFlagSet{m.centered}, ud.tagEnd)) ;
  854. (*$ ENDIF *)
  855.     END CLabel;
  856.  
  857.  
  858. (*$ IF Locale *)
  859. PROCEDURE CLabel1(label : StrPtr) : APTR;
  860. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  861. PROCEDURE CLabel1(label : ARRAY OF CHAR) : APTR;
  862. (*$ ENDIF *)
  863.     BEGIN
  864. (*$ IF Locale *)
  865.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  m.MOLabelFlagSet{m.centered, m.singleFrame}, ud.tagEnd)) ;
  866. (*$ ELSE *)
  867.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), m.MOLabelFlagSet{m.centered, m.singleFrame}, ud.tagEnd)) ;
  868. (*$ ENDIF *)
  869.     END CLabel1;
  870.  
  871.  
  872. (*$ IF Locale *)
  873. PROCEDURE CLabel2(label : StrPtr) : APTR;
  874. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  875. PROCEDURE CLabel2(label : ARRAY OF CHAR) : APTR;
  876. (*$ ENDIF *)
  877.     BEGIN
  878. (*$ IF Locale *)
  879.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  m.MOLabelFlagSet{m.centered, m.doubleFrame}, ud.tagEnd)) ;
  880. (*$ ELSE *)
  881.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), m.MOLabelFlagSet{m.centered, m.doubleFrame}, ud.tagEnd)) ;
  882. (*$ ENDIF *)
  883.     END CLabel2;
  884. (*\\\*)
  885.  
  886. (*///  "KeyLabelX" *)
  887. (*$ IF Locale *)
  888. PROCEDURE KeyLabel(label : StrPtr; HiChar : CHAR) : APTR;
  889. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  890. PROCEDURE KeyLabel(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  891. (*$ ENDIF *)
  892.     BEGIN
  893. (*$ IF Locale *)
  894.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  HiChar, ud.tagEnd)) ;
  895. (*$ ELSE *)
  896.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), HiChar, ud.tagEnd)) ;
  897. (*$ ENDIF *)
  898.     END KeyLabel;
  899.  
  900.  
  901. (*$ IF Locale *)
  902. PROCEDURE KeyLabel1(label : StrPtr; HiChar : CHAR) : APTR;
  903. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  904. PROCEDURE KeyLabel1(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  905. (*$ ENDIF *)
  906.     BEGIN
  907. (*$ IF Locale *)
  908.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.singleFrame}) + LONGCARD(HiChar), ud.tagEnd)) ;
  909. (*$ ELSE *)
  910.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.singleFrame}) + LONGCARD(HiChar), ud.tagEnd)) ;
  911. (*$ ENDIF *)
  912.     END KeyLabel1;
  913.  
  914.  
  915. (*$ IF Locale *)
  916. PROCEDURE KeyLabel2(label : StrPtr; HiChar : CHAR) : APTR;
  917. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  918. PROCEDURE KeyLabel2(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  919. (*$ ENDIF *)
  920.     BEGIN
  921. (*$ IF Locale *)
  922.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.doubleFrame}) + LONGCARD(HiChar), ud.tagEnd)) ;
  923. (*$ ELSE *)
  924.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.doubleFrame}) + LONGCARD(HiChar), ud.tagEnd)) ;
  925. (*$ ENDIF *)
  926.     END KeyLabel2;
  927. (*\\\*)
  928. (*///  "KeyLLabelX" *)
  929. (*$ IF Locale *)
  930. PROCEDURE KeyLLabel(label : StrPtr; HiChar : CHAR) : APTR;
  931. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  932. PROCEDURE KeyLLabel(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  933. (*$ ENDIF *)
  934.     BEGIN
  935. (*$ IF Locale *)
  936.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.leftAligned}) + LONGCARD(HiChar), ud.tagEnd)) ;
  937. (*$ ELSE *)
  938.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.leftAligned}) + LONGCARD(HiChar), ud.tagEnd)) ;
  939. (*$ ENDIF *)
  940.     END KeyLLabel;
  941.  
  942.  
  943. (*$ IF Locale *)
  944. PROCEDURE KeyLLabel1(label : StrPtr; HiChar : CHAR) : APTR;
  945. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  946. PROCEDURE KeyLLabel1(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  947. (*$ ENDIF *)
  948.     BEGIN
  949. (*$ IF Locale *)
  950.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.leftAligned, m.singleFrame}) + LONGCARD(HiChar), ud.tagEnd)) ;
  951. (*$ ELSE *)
  952.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.leftAligned, m.singleFrame}) + LONGCARD(HiChar), ud.tagEnd)) ;
  953. (*$ ENDIF *)
  954.     END KeyLLabel1;
  955.  
  956.  
  957. (*$ IF Locale *)
  958. PROCEDURE KeyLLabel2(label : StrPtr; HiChar : CHAR) : APTR;
  959. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  960. PROCEDURE KeyLLabel2(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  961. (*$ ENDIF *)
  962.     BEGIN
  963. (*$ IF Locale *)
  964.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.leftAligned, m.doubleFrame}) + LONGCARD(HiChar), ud.tagEnd)) ;
  965. (*$ ELSE *)
  966.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.leftAligned, m.doubleFrame}) + LONGCARD(HiChar), ud.tagEnd)) ;
  967. (*$ ENDIF *)
  968.     END KeyLLabel2;
  969. (*\\\*)
  970. (*///  "KeyCLabelX" *)
  971. (*$ IF Locale *)
  972. PROCEDURE KeyCLabel(label : StrPtr; HiChar : CHAR) : APTR;
  973. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  974. PROCEDURE KeyCLabel(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  975. (*$ ENDIF *)
  976.     BEGIN
  977. (*$ IF Locale *)
  978.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.centered}) + LONGCARD(HiChar), ud.tagEnd)) ;
  979. (*$ ELSE *)
  980.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.centered}) + LONGCARD(HiChar), ud.tagEnd)) ;
  981. (*$ ENDIF *)
  982.     END KeyCLabel;
  983.  
  984.  
  985. (*$ IF Locale *)
  986. PROCEDURE KeyCLabel1(label : StrPtr; HiChar : CHAR) : APTR;
  987. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  988. PROCEDURE KeyCLabel1(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  989. (*$ ENDIF *)
  990.     BEGIN
  991. (*$ IF Locale *)
  992.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.centered, m.singleFrame}) + LONGCARD(HiChar), ud.tagEnd)) ;
  993. (*$ ELSE *)
  994.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.centered, m.singleFrame}) + LONGCARD(HiChar), ud.tagEnd)) ;
  995. (*$ ENDIF *)
  996.     END KeyCLabel1;
  997.  
  998.  
  999. (*$ IF Locale *)
  1000. PROCEDURE KeyCLabel2(label : StrPtr; HiChar : CHAR) : APTR;
  1001. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1002. PROCEDURE KeyCLabel2(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  1003. (*$ ENDIF *)
  1004.     BEGIN
  1005. (*$ IF Locale *)
  1006.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.centered, m.doubleFrame}) + LONGCARD(HiChar), ud.tagEnd)) ;
  1007. (*$ ELSE *)
  1008.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.centered, m.doubleFrame}) + LONGCARD(HiChar), ud.tagEnd)) ;
  1009. (*$ ENDIF *)
  1010.     END KeyCLabel2;
  1011. (*\\\*)
  1012.  
  1013. (*$ IF MUI3 *)
  1014.  
  1015. (*///  "FreeX" *)
  1016. (*$ IF Locale *)
  1017. PROCEDURE FreeLabel(label : StrPtr) : APTR;
  1018. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1019. PROCEDURE FreeLabel(label : ARRAY OF CHAR) : APTR;
  1020. (*$ ENDIF *)
  1021.     BEGIN
  1022. (*$ IF Locale *)
  1023.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert}), ud.tagEnd)) ;
  1024. (*$ ELSE *)
  1025.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert}), ud.tagEnd)) ;
  1026. (*$ ENDIF *)
  1027.     END FreeLabel;
  1028.  
  1029.  
  1030. (*$ IF Locale *)
  1031. PROCEDURE FreeLabel1(label : StrPtr) : APTR;
  1032. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1033. PROCEDURE FreeLabel1(label : ARRAY OF CHAR) : APTR;
  1034. (*$ ENDIF *)
  1035.     BEGIN
  1036. (*$ IF Locale *)
  1037.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.singleFrame}), ud.tagEnd)) ;
  1038. (*$ ELSE *)
  1039.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.singleFrame}), ud.tagEnd)) ;
  1040. (*$ ENDIF *)
  1041.     END FreeLabel1;
  1042.  
  1043.  
  1044. (*$ IF Locale *)
  1045. PROCEDURE FreeLabel2(label : StrPtr) : APTR;
  1046. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1047. PROCEDURE FreeLabel2(label : ARRAY OF CHAR) : APTR;
  1048. (*$ ENDIF *)
  1049.     BEGIN
  1050. (*$ IF Locale *)
  1051.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.doubleFrame}), ud.tagEnd)) ;
  1052. (*$ ELSE *)
  1053.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.doubleFrame}), ud.tagEnd)) ;
  1054. (*$ ENDIF *)
  1055.     END FreeLabel2;
  1056. (*\\\*)
  1057. (*///  "FreeLLabelX" *)
  1058. (*$ IF Locale *)
  1059. PROCEDURE FreeLLabel(label : StrPtr) : APTR;
  1060. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1061. PROCEDURE FreeLLabel(label : ARRAY OF CHAR) : APTR;
  1062. (*$ ENDIF *)
  1063.     BEGIN
  1064. (*$ IF Locale *)
  1065.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.leftAligned}), ud.tagEnd)) ;
  1066. (*$ ELSE *)
  1067.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.leftAligned}), ud.tagEnd)) ;
  1068. (*$ ENDIF *)
  1069.     END FreeLLabel;
  1070.  
  1071.  
  1072. (*$ IF Locale *)
  1073. PROCEDURE FreeLLabel1(label : StrPtr) : APTR;
  1074. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1075. PROCEDURE FreeLLabel1(label : ARRAY OF CHAR) : APTR;
  1076. (*$ ENDIF *)
  1077.     BEGIN
  1078. (*$ IF Locale *)
  1079.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.leftAligned, m.singleFrame}), ud.tagEnd)) ;
  1080. (*$ ELSE *)
  1081.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.leftAligned, m.singleFrame}), ud.tagEnd)) ;
  1082. (*$ ENDIF *)
  1083.     END FreeLLabel1;
  1084.  
  1085.  
  1086. (*$ IF Locale *)
  1087. PROCEDURE FreeLLabel2(label : StrPtr) : APTR;
  1088. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1089. PROCEDURE FreeLLabel2(label : ARRAY OF CHAR) : APTR;
  1090. (*$ ENDIF *)
  1091.     BEGIN
  1092. (*$ IF Locale *)
  1093.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.leftAligned, m.doubleFrame}), ud.tagEnd)) ;
  1094. (*$ ELSE *)
  1095.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.leftAligned, m.doubleFrame}), ud.tagEnd)) ;
  1096. (*$ ENDIF *)
  1097.     END FreeLLabel2;
  1098. (*\\\*)
  1099. (*///  "FreeCLabelX" *)
  1100. (*$ IF Locale *)
  1101. PROCEDURE FreeCLabel(label : StrPtr) : APTR;
  1102. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1103. PROCEDURE FreeCLabel(label : ARRAY OF CHAR) : APTR;
  1104. (*$ ENDIF *)
  1105.     BEGIN
  1106. (*$ IF Locale *)
  1107.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.centered}), ud.tagEnd)) ;
  1108. (*$ ELSE *)
  1109.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.centered}), ud.tagEnd)) ;
  1110. (*$ ENDIF *)
  1111.     END FreeCLabel;
  1112.  
  1113.  
  1114. (*$ IF Locale *)
  1115. PROCEDURE FreeCLabel1(label : StrPtr) : APTR;
  1116. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1117. PROCEDURE FreeCLabel1(label : ARRAY OF CHAR) : APTR;
  1118. (*$ ENDIF *)
  1119.     BEGIN
  1120. (*$ IF Locale *)
  1121.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.centered}) + LONGCARD(m.moLabelSingleFrame), ud.tagEnd)) ;
  1122. (*$ ELSE *)
  1123.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.centered}) + LONGCARD(m.moLabelSingleFrame), ud.tagEnd)) ;
  1124. (*$ ENDIF *)
  1125.     END FreeCLabel1;
  1126.  
  1127.  
  1128. (*$ IF Locale *)
  1129. PROCEDURE FreeCLabel2(label : StrPtr) : APTR;
  1130. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1131. PROCEDURE FreeCLabel2(label : ARRAY OF CHAR) : APTR;
  1132. (*$ ENDIF *)
  1133.     BEGIN
  1134. (*$ IF Locale *)
  1135.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.centered, m.doubleFrame}), ud.tagEnd)) ;
  1136. (*$ ELSE *)
  1137.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.centered, m.doubleFrame}), ud.tagEnd)) ;
  1138. (*$ ENDIF *)
  1139.     END FreeCLabel2;
  1140. (*\\\*)
  1141.  
  1142. (*///  "FreeKeyX" *)
  1143. (*$ IF Locale *)
  1144. PROCEDURE FreeKeyLabel(label : StrPtr; HiChar : CHAR) : APTR;
  1145. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1146. PROCEDURE FreeKeyLabel(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  1147. (*$ ENDIF *)
  1148.     BEGIN
  1149. (*$ IF Locale *)
  1150.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert}) + LONGCARD(HiChar), ud.tagEnd)) ;
  1151. (*$ ELSE *)
  1152.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert}) + LONGCARD(HiChar), ud.tagEnd)) ;
  1153. (*$ ENDIF *)
  1154.     END FreeKeyLabel;
  1155.  
  1156.  
  1157. (*$ IF Locale *)
  1158. PROCEDURE FreeKeyLabel1(label : StrPtr; HiChar : CHAR) : APTR;
  1159. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1160. PROCEDURE FreeKeyLabel1(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  1161. (*$ ENDIF *)
  1162.     BEGIN
  1163. (*$ IF Locale *)
  1164.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.singleFrame}) + LONGCARD(HiChar), ud.tagEnd)) ;
  1165. (*$ ELSE *)
  1166.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.singleFrame}) + LONGCARD(HiChar), ud.tagEnd)) ;
  1167. (*$ ENDIF *)
  1168.     END FreeKeyLabel1;
  1169.  
  1170.  
  1171. (*$ IF Locale *)
  1172. PROCEDURE FreeKeyLabel2(label : StrPtr; HiChar : CHAR) : APTR;
  1173. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1174. PROCEDURE FreeKeyLabel2(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  1175. (*$ ENDIF *)
  1176.     BEGIN
  1177. (*$ IF Locale *)
  1178.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.doubleFrame}) + LONGCARD(HiChar), ud.tagEnd)) ;
  1179. (*$ ELSE *)
  1180.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.doubleFrame}) + LONGCARD(HiChar), ud.tagEnd)) ;
  1181. (*$ ENDIF *)
  1182.     END FreeKeyLabel2;
  1183. (*\\\*)
  1184. (*///  "FreeKeyLLabelX" *)
  1185. (*$ IF Locale *)
  1186. PROCEDURE FreeKeyLLabel(label : StrPtr; HiChar : CHAR) : APTR;
  1187. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1188. PROCEDURE FreeKeyLLabel(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  1189. (*$ ENDIF *)
  1190.     BEGIN
  1191. (*$ IF Locale *)
  1192.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.leftAligned}) + LONGCARD(HiChar), ud.tagEnd)) ;
  1193. (*$ ELSE *)
  1194.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.leftAligned}) + LONGCARD(HiChar), ud.tagEnd)) ;
  1195. (*$ ENDIF *)
  1196.     END FreeKeyLLabel;
  1197.  
  1198.  
  1199. (*$ IF Locale *)
  1200. PROCEDURE FreeKeyLLabel1(label : StrPtr; HiChar : CHAR) : APTR;
  1201. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1202. PROCEDURE FreeKeyLLabel1(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  1203. (*$ ENDIF *)
  1204.     BEGIN
  1205. (*$ IF Locale *)
  1206.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.leftAligned, m.singleFrame}) + LONGCARD(HiChar), ud.tagEnd)) ;
  1207. (*$ ELSE *)
  1208.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.leftAligned, m.singleFrame}) + LONGCARD(HiChar), ud.tagEnd)) ;
  1209. (*$ ENDIF *)
  1210.     END FreeKeyLLabel1;
  1211.  
  1212.  
  1213. (*$ IF Locale *)
  1214. PROCEDURE FreeKeyLLabel2(label : StrPtr; HiChar : CHAR) : APTR;
  1215. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1216. PROCEDURE FreeKeyLLabel2(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  1217. (*$ ENDIF *)
  1218.     BEGIN
  1219. (*$ IF Locale *)
  1220.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.leftAligned, m.doubleFrame}) + LONGCARD(HiChar), ud.tagEnd)) ;
  1221. (*$ ELSE *)
  1222.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.leftAligned, m.doubleFrame}) + LONGCARD(HiChar), ud.tagEnd)) ;
  1223. (*$ ENDIF *)
  1224.     END FreeKeyLLabel2;
  1225. (*\\\*)
  1226. (*///  "FreeKeyCLabelX" *)
  1227. (*$ IF Locale *)
  1228. PROCEDURE FreeKeyCLabel(label : StrPtr; HiChar : CHAR) : APTR;
  1229. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1230. PROCEDURE FreeKeyCLabel(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  1231. (*$ ENDIF *)
  1232.     BEGIN
  1233. (*$ IF Locale *)
  1234.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.centered}) + LONGCARD(HiChar), ud.tagEnd)) ;
  1235. (*$ ELSE *)
  1236.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.centered}) + LONGCARD(HiChar), ud.tagEnd)) ;
  1237. (*$ ENDIF *)
  1238.     END FreeKeyCLabel;
  1239.  
  1240.  
  1241. (*$ IF Locale *)
  1242. PROCEDURE FreeKeyCLabel1(label : StrPtr; HiChar : CHAR) : APTR;
  1243. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1244. PROCEDURE FreeKeyCLabel1(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  1245. (*$ ENDIF *)
  1246.     BEGIN
  1247. (*$ IF Locale *)
  1248.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.centered}) + LONGCARD(m.moLabelSingleFrame) + LONGCARD(HiChar), ud.tagEnd)) ;
  1249. (*$ ELSE *)
  1250.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.centered}) + LONGCARD(m.moLabelSingleFrame) + LONGCARD(HiChar), ud.tagEnd)) ;
  1251. (*$ ENDIF *)
  1252.     END FreeKeyCLabel1;
  1253.  
  1254.  
  1255. (*$ IF Locale *)
  1256. PROCEDURE FreeKeyCLabel2(label : StrPtr; HiChar : CHAR) : APTR;
  1257. (*$ ELSE *)(*$ CopyDyn := FALSE *)
  1258. PROCEDURE FreeKeyCLabel2(label : ARRAY OF CHAR; HiChar : CHAR) : APTR;
  1259. (*$ ENDIF *)
  1260.     BEGIN
  1261. (*$ IF Locale *)
  1262.         RETURN ml.MakeObject(m.moLabel, TAG(buffer,     label,  CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.centered, m.doubleFrame}) + LONGCARD(HiChar), ud.tagEnd)) ;
  1263. (*$ ELSE *)
  1264.         RETURN ml.MakeObject(m.moLabel, TAG(buffer, ADR(label), CAST(LONGCARD, m.MOLabelFlagSet{m.freeVert, m.centered, m.doubleFrame}) + LONGCARD(HiChar), ud.tagEnd)) ;
  1265. (*$ ENDIF *)
  1266.     END FreeKeyCLabel2;
  1267. (*\\\*)
  1268.  
  1269. (*$ ENDIF *)
  1270.  
  1271. (*
  1272. **
  1273. ** Controlling Objects
  1274. **
  1275. ** Note : get didn't work in previous releases
  1276. **
  1277. *)
  1278.  
  1279. (*///  "set, get,...." *)
  1280.  
  1281. PROCEDURE get(obj : APTR; attr : LONGCARD; store : ADDRESS);
  1282.     BEGIN DoMethod(obj,TAG(buffer, id.omGET, attr, store));
  1283.     END get;
  1284.  
  1285. PROCEDURE set(obj : APTR; attr : LONGCARD; value : LONGINT);
  1286.     VAR dummy : APTR;
  1287.     BEGIN dummy := il.SetAttrsA(obj, TAG(buffer,attr,value,ud.tagEnd));
  1288.     END set;
  1289.  
  1290. PROCEDURE setmutex(obj : APTR; n : LONGINT);
  1291.     BEGIN set(obj,m.maRadioActive,n);
  1292.     END setmutex;
  1293.  
  1294. PROCEDURE setcycle(obj : APTR; n : LONGINT);
  1295.     BEGIN set(obj,m.maCycleActive,n);
  1296.     END setcycle;
  1297.  
  1298. (*$ IF Locale *)
  1299. PROCEDURE setstring(obj : APTR; s : StrPtr);
  1300.     BEGIN set(obj,m.maStringContents,s);
  1301.     END setstring;
  1302. (*$ ELSE *) (*$ CopyDyn := FALSE *)
  1303. PROCEDURE setstring(obj : APTR; s : ARRAY OF CHAR);
  1304.     BEGIN set(obj,m.maStringContents,ADR(s));
  1305.     END setstring;
  1306. (*$ ENDIF *)
  1307.  
  1308. PROCEDURE setcheckmark(obj : APTR; b : BOOLEAN);
  1309.     BEGIN
  1310.         IF b THEN set(obj,m.maSelected,1);
  1311.              ELSE set(obj,m.maSelected,0);
  1312.              END;
  1313.     END setcheckmark;
  1314.  
  1315. PROCEDURE setslider(obj : APTR; l : LONGINT);
  1316.     BEGIN
  1317. (*$ IF MUI3 *)
  1318.       set(obj,m.maNumericValue,l);
  1319. (*$ ELSE *)
  1320.       set(obj,m.maSliderLevel,l);
  1321. (*$ ENDIF *)
  1322.     END setslider;
  1323.  
  1324. (*\\\*)
  1325. (*///  "NoteClose" *)
  1326. (*
  1327. ** NoteClose (app,obj,ID)
  1328. *)
  1329. PROCEDURE NoteClose(app : APTR; obj : APTR; ID  : LONGINT);
  1330.     BEGIN DoMethod(obj,TAG(buffer, m.mmNotify,m.maWindowCloseRequest,TRUE, app,2,m.mmApplicationReturnID,ID));
  1331.     END NoteClose;
  1332. (*\\\*)
  1333. (*///  "NoteButton" *)
  1334. (*
  1335. **  Notebutton (app,obj,ID)
  1336. *)
  1337. PROCEDURE NoteButton(app : APTR; obj : APTR; ID  : LONGINT);
  1338.     BEGIN DoMethod(obj,TAG(buffer, m.mmNotify,m.maPressed, FALSE, app,2,m.mmApplicationReturnID,ID));
  1339.     END NoteButton;
  1340. (*\\\*)
  1341. (*///  "RemMember" *)
  1342. (*
  1343. ** RemMember (obj,member)
  1344. *)
  1345.  
  1346. PROCEDURE RemMember(obj : APTR; member : APTR);
  1347.     BEGIN DoMethod(obj,TAG(buffer, id.omREMMEMBER, member));
  1348.     END RemMember;
  1349. (*\\\*)
  1350. (*///  "AddMember" *)
  1351. (*
  1352. ** AddMember (obj,member)
  1353. *)
  1354.  
  1355. PROCEDURE AddMember(obj : APTR; member : APTR);
  1356.     BEGIN DoMethod(obj,TAG(buffer, id.omADDMEMBER, member));
  1357.     END AddMember;
  1358. (*\\\*)
  1359.  
  1360. END MuiMacros.
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.